﻿namespace WMS6.Web.BaseInfoServiceRef
{
    using System;
    using System.CodeDom.Compiler;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Runtime.CompilerServices;
    using System.Runtime.Serialization;

    [Serializable, DebuggerStepThrough, DataContract(Name="UserPermissionsInfo", Namespace="http://schemas.datacontract.org/2004/07/WMS6.DataEntity"), GeneratedCode("System.Runtime.Serialization", "3.0.0.0")]
    public class UserPermissionsInfo : IExtensibleDataObject, INotifyPropertyChanged
    {
        [OptionalField]
        private List<UserBillingentityInfo> AuthorizedBillingEntityField;
        [OptionalField]
        private List<UserCarrierInfo> AuthorizedCarrierField;
        [OptionalField]
        private List<UserCustomerInfo> AuthorizedCustomerField;
        [OptionalField]
        private List<OwnerInfo> AuthorizedOwnerField;
        [OptionalField]
        private List<UserVendorInfo> AuthorizedVendorField;
        [OptionalField]
        private List<DbConfigInfo> AuthorizedWHField;
        [NonSerialized]
        private ExtensionDataObject extensionDataField;
        [OptionalField]
        private List<UserBillingentityInfo> UnauthorizedBillingEntityField;
        [OptionalField]
        private List<UserCarrierInfo> UnauthorizedCarrierField;
        [OptionalField]
        private List<UserCustomerInfo> UnauthorizedCustomerField;
        [OptionalField]
        private List<OwnerInfo> UnauthorizedOwnerField;
        [OptionalField]
        private List<UserVendorInfo> UnauthorizedVendorField;
        [OptionalField]
        private List<DbConfigInfo> UnauthorizedWHField;
        [OptionalField]
        private string UserIDField;
        [OptionalField]
        private List<WMS6.Web.BaseInfoServiceRef.UserRoleInfo> UserRoleInfoField;

        public event PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if (propertyChanged != null)
            {
                propertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        [DataMember]
        public List<UserBillingentityInfo> AuthorizedBillingEntity
        {
            get
            {
                return this.AuthorizedBillingEntityField;
            }
            set
            {
                if (!object.ReferenceEquals(this.AuthorizedBillingEntityField, value))
                {
                    this.AuthorizedBillingEntityField = value;
                    this.RaisePropertyChanged("AuthorizedBillingEntity");
                }
            }
        }

        [DataMember]
        public List<UserCarrierInfo> AuthorizedCarrier
        {
            get
            {
                return this.AuthorizedCarrierField;
            }
            set
            {
                if (!object.ReferenceEquals(this.AuthorizedCarrierField, value))
                {
                    this.AuthorizedCarrierField = value;
                    this.RaisePropertyChanged("AuthorizedCarrier");
                }
            }
        }

        [DataMember]
        public List<UserCustomerInfo> AuthorizedCustomer
        {
            get
            {
                return this.AuthorizedCustomerField;
            }
            set
            {
                if (!object.ReferenceEquals(this.AuthorizedCustomerField, value))
                {
                    this.AuthorizedCustomerField = value;
                    this.RaisePropertyChanged("AuthorizedCustomer");
                }
            }
        }

        [DataMember]
        public List<OwnerInfo> AuthorizedOwner
        {
            get
            {
                return this.AuthorizedOwnerField;
            }
            set
            {
                if (!object.ReferenceEquals(this.AuthorizedOwnerField, value))
                {
                    this.AuthorizedOwnerField = value;
                    this.RaisePropertyChanged("AuthorizedOwner");
                }
            }
        }

        [DataMember]
        public List<UserVendorInfo> AuthorizedVendor
        {
            get
            {
                return this.AuthorizedVendorField;
            }
            set
            {
                if (!object.ReferenceEquals(this.AuthorizedVendorField, value))
                {
                    this.AuthorizedVendorField = value;
                    this.RaisePropertyChanged("AuthorizedVendor");
                }
            }
        }

        [DataMember]
        public List<DbConfigInfo> AuthorizedWH
        {
            get
            {
                return this.AuthorizedWHField;
            }
            set
            {
                if (!object.ReferenceEquals(this.AuthorizedWHField, value))
                {
                    this.AuthorizedWHField = value;
                    this.RaisePropertyChanged("AuthorizedWH");
                }
            }
        }

        [Browsable(false)]
        public ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }

        [DataMember]
        public List<UserBillingentityInfo> UnauthorizedBillingEntity
        {
            get
            {
                return this.UnauthorizedBillingEntityField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UnauthorizedBillingEntityField, value))
                {
                    this.UnauthorizedBillingEntityField = value;
                    this.RaisePropertyChanged("UnauthorizedBillingEntity");
                }
            }
        }

        [DataMember]
        public List<UserCarrierInfo> UnauthorizedCarrier
        {
            get
            {
                return this.UnauthorizedCarrierField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UnauthorizedCarrierField, value))
                {
                    this.UnauthorizedCarrierField = value;
                    this.RaisePropertyChanged("UnauthorizedCarrier");
                }
            }
        }

        [DataMember]
        public List<UserCustomerInfo> UnauthorizedCustomer
        {
            get
            {
                return this.UnauthorizedCustomerField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UnauthorizedCustomerField, value))
                {
                    this.UnauthorizedCustomerField = value;
                    this.RaisePropertyChanged("UnauthorizedCustomer");
                }
            }
        }

        [DataMember]
        public List<OwnerInfo> UnauthorizedOwner
        {
            get
            {
                return this.UnauthorizedOwnerField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UnauthorizedOwnerField, value))
                {
                    this.UnauthorizedOwnerField = value;
                    this.RaisePropertyChanged("UnauthorizedOwner");
                }
            }
        }

        [DataMember]
        public List<UserVendorInfo> UnauthorizedVendor
        {
            get
            {
                return this.UnauthorizedVendorField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UnauthorizedVendorField, value))
                {
                    this.UnauthorizedVendorField = value;
                    this.RaisePropertyChanged("UnauthorizedVendor");
                }
            }
        }

        [DataMember]
        public List<DbConfigInfo> UnauthorizedWH
        {
            get
            {
                return this.UnauthorizedWHField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UnauthorizedWHField, value))
                {
                    this.UnauthorizedWHField = value;
                    this.RaisePropertyChanged("UnauthorizedWH");
                }
            }
        }

        [DataMember]
        public string UserID
        {
            get
            {
                return this.UserIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UserIDField, value))
                {
                    this.UserIDField = value;
                    this.RaisePropertyChanged("UserID");
                }
            }
        }

        [DataMember]
        public List<WMS6.Web.BaseInfoServiceRef.UserRoleInfo> UserRoleInfo
        {
            get
            {
                return this.UserRoleInfoField;
            }
            set
            {
                if (!object.ReferenceEquals(this.UserRoleInfoField, value))
                {
                    this.UserRoleInfoField = value;
                    this.RaisePropertyChanged("UserRoleInfo");
                }
            }
        }
    }
}

